package com.bzkj.basicinfo.domain.exception;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;

/**
 * WMS异常记录表实体
 *
 *@author lixinyu
 * @date 2025-10-23
 */
@Data
public class WmsExceptionRecordEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 异常编号 */
    private String exceptionNo;

    /** 异常类型（inspect_reject验收不通过/putaway_error上架异常/stock_error库存异常/system_error系统异常） */
    private String exceptionType;

    /** 异常级别（low低/medium中/high高/urgent紧急） */
    private String exceptionLevel;

    /** 关联单据类型（receive_order收货单/inspect_task验收任务/putaway_task上架任务） */
    private String relatedOrderType;

    /** 关联单据号 */
    private String relatedOrderNo;

    /** 关联单据ID */
    private Long relatedOrderId;

    /** 异常标题 */
    private String exceptionTitle;

    /** 异常描述 */
    private String exceptionDesc;

    /** 异常原因 */
    private String exceptionReason;

    /** 处理状态（pending待处理/processing处理中/resolved已解决/closed已关闭） */
    private String handleStatus;

    /** 处理方案 */
    private String handlePlan;

    /** 处理结果 */
    private String handleResult;

    /** 处理人 */
    private String handler;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date handleTime;

    /** 关闭原因 */
    private String closeReason;

    /** 关闭时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date closeTime;

    /** 相关照片（多个用逗号分隔） */
    private String photoUrls;

    /** 备注 */
    private String remark;

    /** 创建人 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新人 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 自定义字段1 */
    private String def1;

    /** 自定义字段2 */
    private String def2;

    /** 自定义字段3 */
    private String def3;

    /** 自定义字段4 */
    private String def4;

    /** 自定义字段5 */
    private String def5;
}